package com.learn.redis.test;

import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author DYZ
 * @date 2021/8/25
 */
public class RedisTestHash {

    Jedis jedis;

    @Before
    public void setUp() {
        jedis = new Jedis("192.168.2.23", 6379);
    }

    @Test
    public void ping() {
        Map<String, String> user = new HashMap<>(16);
        user.put("name", "Don");
        user.put("age", "18");
        user.put("pwd", "123456");

        jedis.hmset("user", user);

        // 第一个参数是存入redis中map对象的key，后面跟的是放入map中的对象的key，后面的key可以跟多个，是可变参数
        List<String> map = jedis.hmget("user", "name", "age");
        System.out.println(map);

        // 删除map中的某个键值
        jedis.hdel("user", "pwd");

        // 因为删除了，所以返回的是null
        System.out.println(jedis.hmget("user", "pwd"));
        // 返回key为user的键中存放的值的个数1
        System.out.println(jedis.hlen("user"));
        // 是否存在key为user的记录
        System.out.println(jedis.exists("user"));
        // 返回map对象中的所有key
        System.out.println(jedis.hkeys("user"));
        // 返回map对象中的所有value
        System.out.println(jedis.hvals("user"));

        for (String key : jedis.hkeys("user")) {
            System.out.println(key + ":" + jedis.hmget("user", key));
        }
    }

}
//[Don, 18]
//[null]
//2
//true
//[age, name]
//[18, Don]
//age:[18]
//name:[Don]